<?php
class Ctl{
public function show($page,$data=null){
        $_token=md5(rand(1,999));
        $_SESSION["_token"]=$_token;//令牌，防止第三方访问或重复提交等
        if($data!=null){
            extract($data);//将控制器中传入的数组参数化
        }
        ob_start();//打开缓冲，下面的内容会先输出在缓冲区中
        if(!file_exists(XXF_ROOT.'view\\'.ucfirst($page). '_v.php')){
            $this->showtov('404');
            die();
        }
        require_once  XXF_ROOT.'view\\'.ucfirst($page). '_v.php';
        $content = ob_get_contents();//获取缓冲区的内容，其实就是上面这个视图文件
        ob_end_clean();//关闭缓冲区
        //下面是对上面的视图文件进行转码，翻译成一个新的视图文件并保存在临时目录中
        $content=preg_replace("/{{\s*\\$([a-zA-Z_\x7f-\xff][a-zA-Z0-9_\xf7-\xff]*)\s*}}/","<?php echo \$\\1; ?>",$content);
        $tempviewurl=XXF_ROOT.'temp\\'.ucfirst($page). '_v_temp.php';
        file_put_contents($tempviewurl,$content);
        require_once  $tempviewurl;
    }
    
    public function showtov($page,$data=null){
        $_token=md5(rand(1,999));
        $_SESSION["_token"]=$_token;//令牌，防止第三方访问或重复提交等
        if($data!=null){
            extract($data);//将控制器中传入的数组参数化
        }
        require_once  XXF_ROOT.'view\\'.$page. '.php';
    }
    
    public function sessver(){
        if(XXF_UID=='0'){
            $this->showtov("404");
            exit();
        }else{
            if(!in_array(XXF_URL, explode(",", gconf('web', 'public')))){//判断当前目标是否是公共权限
                $s="select count(1) from `user` as u,user_list as ul,list as l where ul.uid=u.id and ul.lid=l.id and u.id=".XXF_UID." and l.luri like '".(explode("_", XXF_URL)[0])."%'";
                $i=xdb::getInstance()->getvar($s);
                if($i==0){
                    $this->showtov("404");
                    exit();
                }
            }
        }
    }
}